#pragma once

#include <iostream>
#include <string>
#include <vector>
#include "SDL.h"

class SDLComponent
{
public:
	static int count;
	static std::vector<SDLComponent*> components;

	SDLComponent();
	~SDLComponent();

	void Enable();
	void Disable();
	void SetVisible(bool visible) {isVisible = visible;}
	bool GetVisible() { return isVisible; }

	void Start();
	virtual void Update()	= 0;
	virtual void Draw()		= 0;
	void Reset();

private:

protected:
	std::string name;
	bool isVisible;
	bool isInitialized;
};

